<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    栈方法 push pop 后进先出
    队列方法 unshift shift  先进先出
    都可以改变原数组
    1.push方法:用来在数组的末尾去追加一个或者多个元素,返回新的数组的长队,改变原来的数组
    <script>
        // var arr=["hello","world"];
        // arr.push("sha","zhangjun");
        // console.log(arr);
    </script>

    案例:生成一个数组,里面是从2开始的偶数,总共30个
    <script>
        var arr1=[]
        for(var i=1;i<=30;i++){
            // console.log(i*2);
            arr1.push(i*2);
        }
        console.log(arr1);
    </script>
    案例:把上面生成的数组,每5个求一下平均值,输入到一个新的数组里面去
    分析:平均值 5个数/5  新数组
    <script>
        var newarr=[];
        for(var j=0,sum=0;j<arr1.length;j++){
            // console.log(arr1[j]);
            sum+=arr1[j];
            // console.log(sum);
            if((j+1)%5===0){//每5个数就是一个节点
                newarr.push(sum/5);//求前5个数的平均值
                sum=0;
            }
        }
       // console.log(sum);//0
       // console.log(newarr);//[6,16,26,36,46,56]
    </script>

    2.pop():从数组的末尾删除一个数组项,没有参数,返回删除的数组项
    <script>
        // var arr=["apple","banana","orange","pear"];
        // arr.pop();
        // console.log(arr);
    </script>

    3.unshift和shift方法
    <script>
        // unshift方法是用来在数组的前面追加一个或者多个元素,返回一个新数组
        var arr=["apple","banana"];
        arr.unshift("hello",'zhangjun');
        console.log(arr);// ['hello', 'zhangjun', 'apple', 'banana']

        //shift方法:从数组前面删除一个数组项,没有参数.返回删除的数组
        arr.shift();
        console.log(arr);//['zhangjun', 'apple', 'banana']
    </script>

    4.reverse方法.重排序.将数组进行一个反转,改变原来的数组
    <script>
        var arr=[12,3,4];
        console.log(arr.reverse());//[4,3,12]
    </script>
    5.sort():本意用来排序字符串的,按照ASCII编码进行升序或者降序
    <script>
        // var arr1=['b','c','a','d'];
        // console.log(arr1.sort());

        // var arr2=[100,4,7,20000,11234,42,43];
        // console.log(arr2.sort());
    </script>
    提供了 两个比较函数的结构,将比较的函数当做sort的参数,对数字进行升序和降序的排列
    <script>
        var arr2=[100,4,7,20000,11234,42,43];
        // 比较函数会接收2个参数
        // 如果第一个参数应该是位于第二个之前,返回一个负数
        // 如果两个参数相等,返回0
        // 如果第一个参数应该是位于第二个之后,返回一个正数
        function compare(value1,value2){
            if(value1<value2){//升序
                return -1  
            }else if(value1>value2){//降序
                return 1
            }else{
                return 0
            }
        }
        console.log(arr2.sort(compare));
    </script>

</body>
</html>